﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DTO;
using BUS;

namespace GUI
{
    public partial class FormSanPham : Form
    {
        public FormSanPham()
        {
            InitializeComponent();
        }

        private void insertDgvSim(List<SimDTO> listSimDTO)
        {
            if (listSimDTO != null)
            {
                dgvSim.Rows.Clear();
                foreach (SimDTO item in listSimDTO)
                {
                    string loaiSim = "";
                    List<LoaiSimDTO> listLoaiSimDTO = Sim_LoaiSimBUS.DanhSachSim_LoaiSim(item.MaSanPham);
                    if (listLoaiSimDTO != null)
                    {
                        loaiSim = listLoaiSimDTO[0].TenLoaiSim;
                        for (int i = 1; i < listLoaiSimDTO.Count; i++)
                        {
                            loaiSim += ", " + listLoaiSimDTO[i].TenLoaiSim;
                        }
                    }

                    dgvSim.Rows.Add(item.MaSanPham, item.SoThueBao, item.SoSeri, string.Format("{0:#,0.##}", item.DonGia), loaiSim, NhaMangBUS.SelectNhaMangByID(item.MaNhaMang).TenNhaMang, item.TinhTrang);
                }
                btnCapNhatSim.Enabled = true;
                btnThemLoaiSim.Enabled = true;
                btnXoaLoaiSim.Enabled = true;
            }
            else
            {
                btnCapNhatSim.Enabled = false;
                btnThemLoaiSim.Enabled = false;
                btnXoaLoaiSim.Enabled = false;
            }
        }

        private void insertDgvTheCao(List<TheCaoDTO> listTheCaoDTO)
        {
            if (listTheCaoDTO != null)
            {
                dgvTheCao.Rows.Clear();
                foreach (TheCaoDTO item in listTheCaoDTO)
                {
                    dgvTheCao.Rows.Add(item.MaSanPham, item.SoTheCao, item.SoSeri, string.Format("{0:#,0.##}", item.DonGia), item.MenhGia, NhaMangBUS.SelectNhaMangByID(item.MaNhaMang).TenNhaMang, item.TinhTrang);
                }
                btnCapNhatTheCao.Enabled = true;
            }
            else
            {
                btnCapNhatTheCao.Enabled = false;
            }
        }
        private void FormSanPham_Activated(object sender, EventArgs e)
        {
            //load danh sach sim
            List<SimDTO> listSimDTO = SimBUS.DanhSachSim();
            insertDgvSim(listSimDTO);

            //load danh sach thẻ cào
            List<TheCaoDTO> listTheCaoDTO = TheCaoBUS.DanhSachTheCao();
            insertDgvTheCao(listTheCaoDTO);
           
        }

        private void FormSanPham_Resize(object sender, EventArgs e)
        {
            tabMain.Width = this.Width;
            tabMain.Height = this.Height;

            if (WindowState == FormWindowState.Maximized)
            {
                this.ShowIcon = false;
            }
            else
            {
                this.ShowIcon = true;
            }
        }

        private void tabMain_Resize(object sender, EventArgs e)
        {
            pnSim.Location = new Point((tabMain.Width - pnSim.Width) / 2, pnSim.Location.Y);
        }

        private void tabSim_Resize(object sender, EventArgs e)
        {
            pnSim.Location = new Point((tabMain.Width - pnSim.Width) / 2, pnSim.Location.Y);
        }

        private void tabTheCao_Resize(object sender, EventArgs e)
        {
            pnTheCao.Location = new Point((tabMain.Width - pnTheCao.Width) / 2, pnTheCao.Location.Y);
        }

        private void btnThemTheCao_Click(object sender, EventArgs e)
        {
            FormTheCao f = new FormTheCao();
            f.status = 1;
            f.Text = "Thêm thẻ cào";
            f.ShowDialog();
            if (f.reset)
            {
                //load danh sach the cao
                List<TheCaoDTO> listTheCaoDTO = TheCaoBUS.DanhSachTheCao();
                insertDgvTheCao(listTheCaoDTO);
                dgvTheCao.CurrentCell = dgvTheCao.Rows[dgvTheCao.Rows.Count - 1].Cells[0];
                dgvTheCao.FirstDisplayedCell = dgvTheCao.CurrentCell;

            }
        }

        private void btnCapNhatTheCao_Click(object sender, EventArgs e)
        {
            FormTheCao f = new FormTheCao();
            f.status = 2;
            f.Text = "Cập nhật thẻ cào";
            f.maSanPham = (int)dgvTheCao.CurrentRow.Cells[ColMaSim.Index].Value;
            int row = dgvTheCao.CurrentRow.Index;
            int fist = dgvTheCao.FirstDisplayedCell.RowIndex;
            f.ShowDialog();
            if (f.reset)
            {
                List<TheCaoDTO> listTheCaoDTO = TheCaoBUS.DanhSachTheCao();
                insertDgvTheCao(listTheCaoDTO);
                dgvTheCao.FirstDisplayedCell = dgvTheCao.Rows[fist].Cells[0];
                dgvTheCao.CurrentCell = dgvTheCao.Rows[row].Cells[0];
            }
        }

        private void btnThoatThecao_Click(object sender, EventArgs e)
        {
            this.Dispose();
        }

        private void btnThemSim_Click(object sender, EventArgs e)
        {
            FormSim f = new FormSim();
            f.status = 1;
            f.Text = "Thêm sim mới";
            f.ShowDialog();
            if (f.reset)
            {
                //load danh sach sim
                List<SimDTO> listSimDTO = SimBUS.DanhSachSim();
                insertDgvSim(listSimDTO);
                dgvSim.CurrentCell = dgvSim.Rows[dgvSim.Rows.Count - 1].Cells[0];
                dgvSim.FirstDisplayedCell = dgvSim.CurrentCell;

            }
        }

        private void btnCapNhatSim_Click(object sender, EventArgs e)
        {
            FormSim f = new FormSim();
            f.status = 2;
            f.Text = "Cập nhật sim";
            f.maSanPham = (int)dgvSim.CurrentRow.Cells[ColMaSim.Index].Value;
            int row = dgvSim.CurrentRow.Index;
            int fist = dgvSim.FirstDisplayedCell.RowIndex;
            f.ShowDialog();
            if (f.reset)
            {
                List<SimDTO> listSimDTO = SimBUS.DanhSachSim();
                insertDgvSim(listSimDTO);
                dgvSim.FirstDisplayedCell = dgvSim.Rows[fist].Cells[0];
                dgvSim.CurrentCell = dgvSim.Rows[row].Cells[0];
            }
        }

        private void btnThoatSim_Click(object sender, EventArgs e)
        {
            this.Dispose();
        }

        private void btnThemLoaiSim_Click(object sender, EventArgs e)
        {
            //Thêm loại sim của san phẩm
            FormSim_LoaiSim f = new FormSim_LoaiSim();
            f.status = 1;
            f.Text = "Thêm loại sim";
            f.maSanPham = (int)dgvSim.CurrentRow.Cells[ColMaSim.Index].Value;
            int row = dgvSim.CurrentRow.Index;
            int fist = dgvSim.FirstDisplayedCell.RowIndex;
            f.ShowDialog();
            if (f.reset)
            {
                List<SimDTO> listSimDTO = SimBUS.DanhSachSim();
                insertDgvSim(listSimDTO);
                dgvSim.FirstDisplayedCell = dgvSim.Rows[fist].Cells[0];
                dgvSim.CurrentCell = dgvSim.Rows[row].Cells[0];
            }
        }

        private void btnXoaLoaiSim_Click(object sender, EventArgs e)
        {
            //Thêm loại sim của san phẩm
            FormSim_LoaiSim f = new FormSim_LoaiSim();
            f.status = 2;
            f.Text = "Xóa loại sim";
            f.maSanPham = (int)dgvSim.CurrentRow.Cells[ColMaSim.Index].Value;
            int row = dgvSim.CurrentRow.Index;
            int fist = dgvSim.FirstDisplayedCell.RowIndex;
            f.ShowDialog();
            if (f.reset)
            {
                List<SimDTO> listSimDTO = SimBUS.DanhSachSim();
                insertDgvSim(listSimDTO);
                dgvSim.FirstDisplayedCell = dgvSim.Rows[fist].Cells[0];
                dgvSim.CurrentCell = dgvSim.Rows[row].Cells[0];
            }
        }
    }
}
